package org.beiming;

/**
 *             /**
 *              * 问题分析
 *              * 硬编码字符串：使用字符串直接比较容易出错，如果拼写错误会导致运行时异常
 *              * 违反开闭原则：添加新的收费策略需要修改switch语句
 *              * 类型不安全：没有编译时检查，容易出现无效的type值
 *              * 优化建议
 *              * 使用枚举类型替代字符串字面量，提高类型安全性
 *              * 采用工厂模式将对象创建逻辑封装在枚举内部
 *              * 提高代码可维护性和可扩展性
 *              * 下面是优化后的代码：
 *              */

public class CashEnumContext {
    private CashSuper cs;

    public CashEnumContext(String type){
        this.cs = CashStrategy.valueOfLabel(type).createStrategy();
    }
    public double getResult(double money){
        return cs.acceptCash(money);
    }
}
